package com.ruoyi.system.service;

import com.ruoyi.common.core.domain.LmTaskTypeVO;
import com.ruoyi.common.core.domain.entity.LmTaskType;

import java.util.List;

/**
 * 任务类型 服务层
 */
public interface ILmTaskTypeService {

    /**
     * 查询任务类型列表（递归）
     *
     * @param taskType 任务类型信息
     * @return 任务类型集合
     */
    List<LmTaskTypeVO> selectTaskTypeList(LmTaskType taskType,String taskTypeId);


    List<LmTaskType> selectTaskTypeListNew(LmTaskType taskType,String taskTypeId);

    /**
     * 根据ID查询任务类型
     *
     * @param id 任务类型ID
     * @return 任务类型信息
     */
    LmTaskType selectTaskTypeById(Integer id);

    /**
     * 新增任务类型
     *
     * @param taskType 任务类型信息
     * @return 结果
     */
    int insertTaskType(LmTaskType taskType);

    /**
     * 修改任务类型
     *
     * @param taskType 任务类型信息
     * @return 结果
     */
    int updateTaskType(LmTaskType taskType);

    /**
     * 删除任务类型
     *
     * @param id 任务类型ID
     * @return 结果
     */
    int deleteTaskTypeById(Integer id);

    /**
     * 构建任务类型树
     *
     * @param taskTypeList 任务类型列表
     * @return 任务类型树结构列表
     */
    List<LmTaskTypeVO> buildTaskTypeTree(List<LmTaskType> taskTypeList);
}
